

#ifndef WARPER
#define WARPER
#endif

#include <jni.h>
#include <stdlib.h>
#include <android/log.h>
#include <time.h>
#include <stdio.h>
#include <math.h>
#include <Point.h>
#include <FloatPoint.h>
#include <android/log.h>
#include <android/bitmap.h>

/*void ImageSmoothApply(void **pixelscolor, FloatPoint *fp, int w, int h, int stride);
#ifdef _CPLUSPLUS
	extern "C" int Warper_Swirl(JNIEnv* env, jobject thiz, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity, int rotate_direction);
#else
	extern int Warper_Swirl(JNIEnv* env, jobject thiz, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity, int rotate_direction);
#endif*/

int Warper_Swirl(JNIEnv* env, jobject thiz, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity, int rotate_direction, int smooth);
int Warper_SphereOut(JNIEnv* env, jobject thiz, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity, int smooth);
int Warper_SphereIn(JNIEnv* env, jobject thiz, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity, int smooth);
int Warper_Move(JNIEnv* env, jobject thiz, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity, jint endx, jint endy, int smooth);
int Warper_Undo(JNIEnv* env, jobject thiz, jobject originbitmap, jobject bitmap, jint pointx, jint pointy, jint area, jint intensity);
int Warper_Create_Swirl_Matrix(JNIEnv* env, jobject thiz, jfloatArray  matrixX, jfloatArray  matrixY, jint n, jint w, jint h, jint intensity, int rotate_direction);
int Warper_Create_SphereOut_Matrix(JNIEnv* env, jobject thiz, jfloatArray  matrixX, jfloatArray  matrixY, jint n, jint w, jint h, jint intensity);
int Warper_Create_SphereIn_Matrix(JNIEnv* env, jobject thiz, jfloatArray  matrixX, jfloatArray  matrixY, jint n, jint w, jint h, jint intensity);
int Warper_Transform(JNIEnv* env, jobject thiz, jobject bitmap, jfloatArray matrixX, jfloatArray matrixY, jint pointx, jint pointy, jint area, jint intensity, int smooth);

